home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / falcon / bwing105 / bwings.lst < prev    next >
File List  |  1995-04-27  |  5KB  |  179 lines

  1. '
  2. '
  3. ' * * * * * * * Bird's Wings * * * * * *
  4. ' * Compatibilité: Xbios 88 et Xbios 5 *
  5. ' * * * * * * * * * * * * * * * * * * *
  6. '
  7. ' * * Test pour Bird's Wings * *
  8. ' Un changement de résolution sous B.W. est possible, ainsi
  9. ' que le retour à l'ancienne résolution virtuelle.
  10. '
  11. ' Essayez ce listing sous écran virtuel B.W.
  12. '
  13. '
  14. '
  15. '
  16. Defint "a-z"
  17. Deflist 3
  18. '
  19. T_swap
  20. T_swap2
  21. T_swap3
  22. T_swap4
  23. T_swap5
  24. '
  25. '
  26. ' Simple changement de résolution -> ST Moyenne
  27. > procedure T_swap
  28.   '
  29.   Ancien_res&=Xbios(88,-1)      ! Résolution actuelle
  30.   ' Ancien_res& contient maintenant le mode normal de résolution.
  31.   ' Si B.W. est installé, le bit 12 de Ancien_res& sera fixé.
  32.   ' Ce bit est la marque de Bird's Wings.
  33.   '
  34.   '
  35.   Void Xbios(5,L:-1,L:-1,1)               ! Passage en moyenne résolution
  36.   ' Nous passons ici en moyenne résolution.
  37.   ' Si B.W. était installé, il est désactivé.
  38.   ' Vous êtes donc en résolution normale
  39.   ' (Ici: moyenne, de 320 points sur 200 en 4 couleurs)
  40.   '
  41.   '
  42.   Test_couleurs
  43.   Print "Test 1 / Moyenne résolution. Pressez une touche"
  44.   Waitkey                                 ! Attendre une touche au clavier
  45.   '
  46.   Void Xbios(88,Ancien_res&)              ! Passage en résolution normale
  47.   ' Cet appel remet la résolution initiale.
  48.   ' Si B.W. est installé (même désactivé), l'écran virtuel sera remis
  49.   ' Note: On peut aussi faire un Void Xbios(5,L:-1,L:-1,3,ancien_res&)
  50.   '
  51.   '
  52.   Cls
  53.   Print "Test 1 / Ecran réinstallé - Pressez une touche"
  54.   Waitkey
  55.   '
  56. Return
  57. '
  58. ' Changement de résolution, nouvel écran logique/physique
  59. > procedure T_swap2
  60.   '
  61.   Ancien_res&=Xbios(88,-1)      ! Ancien mode?
  62.   Ancien_ecran%=Xbios(3)        ! Ancienne adresse écran?
  63.   '
  64.   Adr_ecran%=Malloc(32000)
  65.   If Adr_ecran%>0
  66.     ~Xbios(5,L:Adr_ecran%,L:Adr_ecran%,1)       ! ST Moyenne, nouvel écran
  67.     Test_couleurs
  68.     Print "Test 2 / Ecran supplémentaire"
  69.     Waitkey
  70.     ~Xbios(5,L:Ancien_ecran%,L:Ancien_ecran%,3,Ancien_res&)
  71.     ~Mfree(Adr_ecran%)
  72.     Cls
  73.     Print "Test 2 / Ecran réinstallé - Pressez une touche"
  74.     Waitkey
  75.   Endif
  76.   '
  77. Return
  78. '
  79. ' Idem Test 2 mais avec autre résol. (256 col)
  80. > procedure T_swap3
  81.   Ancien_res&=Xbios(88,-1)      ! Ancien mode?
  82.   Ancien_ecran%=Xbios(3)        ! Ancienne adresse écran?
  83.   '
  84.   Nouv_ecran%=Or(And(Ancien_res&,&X111111000),&X11)     ! 256 col
  85.   Adr_ecran%=Malloc(Xbios(91,Nouv_ecran%))
  86.   If Adr_ecran%>0
  87.     '
  88.     ' Note: TOUJOURS mettre le Xbios 8 après
  89.     ~Xbios(5,L:Adr_ecran%,L:Adr_ecran%,-1)
  90.     ~Xbios(88,Nouv_ecran%)
  91.     Test_couleurs
  92.     Print "Test 3 / Ecran supplémentaire 2 par Xbios(5)+Xbios(88)"
  93.     Waitkey
  94.     ' Idem:
  95.     ~Xbios(5,L:Adr_ecran%,L:Adr_ecran%,3,Nouv_ecran%)
  96.     Test_couleurs
  97.     Print "Test 3 / Ecran supplémentaire 2 bis .. (identique) par Xbios(5) étendu"
  98.     Waitkey
  99.     '
  100.     ~Xbios(5,L:Ancien_ecran%,L:Ancien_ecran%,3,Ancien_res&)
  101.     ~Mfree(Adr_ecran%)
  102.     Cls
  103.     Print "Test 3 / Ecran réinstallé - Pressez une touche"
  104.     Waitkey
  105.   Endif
  106.   '
  107. Return
  108. '
  109. ' Idem Test 2 et 3 mais en résol virtuelle! (->souris!)
  110. > procedure T_swap4
  111.   '
  112.   Ancien_ecran%=Xbios(3)
  113.   '
  114.   Taille%=Xbios(91,Xbios(88,-1))
  115.   Adr_ecran%=Malloc(Taille%)
  116.   If Adr_ecran%>0
  117.     ~Xbios(5,L:Adr_ecran%,L:Adr_ecran%,-1)
  118.     Test_couleurs
  119.     Print "Test 4 / Résolution VIRTUELLE, MAIS a changée d'adresse!"
  120.     Waitkey
  121.     ~Xbios(5,L:Ancien_ecran%,L:Ancien_ecran%,-1)
  122.     ~Mfree(Adr_ecran%)
  123.     Cls
  124.     Print "Test 4 / Ecran réinstallé - Pressez une touche"
  125.     Waitkey
  126.   Endif
  127.   '
  128. Return
  129. '
  130. ' Même chose que Test 4, mais avec flip LogBase/PhyBase!
  131. > procedure T_swap5
  132.   '
  133.   Ancien_ecran%=Xbios(3)
  134.   '
  135.   Taille%=Xbios(91,Xbios(88,-1))
  136.   Adr_ecran%=Malloc(Taille%)
  137.   If Adr_ecran%>0
  138.     Cls
  139.     Print "L'affichage se fait sur un écran virtuel, veuillez patienter!"
  140.     ~Xbios(5,L:Adr_ecran%,L:-1,-1)      ! PhyBase ne change pas
  141.     Cls
  142.     Test_couleurs
  143.     Print "Test 5 / Résolution VIRTUELLE, MAIS a changée d'adresse et PhyBase<>LogBase!"
  144.     For A&=1 To 100
  145.       Circle A&*5,A&+100,A&
  146.     Next A&
  147.     ~Xbios(5,L:-1,L:Adr_ecran%,-1)      ! PhyBase change!
  148.     Waitkey
  149.     ~Xbios(5,L:Ancien_ecran%,L:Ancien_ecran%,-1)
  150.     ~Mfree(Adr_ecran%)
  151.     Cls
  152.     Print "Test 5 / Ecran réinstallé - Pressez une touche"
  153.     Waitkey
  154.   Endif
  155. Return
  156. '
  157. '
  158. ' Attendre une touche au clavier
  159. > procedure Waitkey
  160.   Showm
  161.   ~Inp(2)
  162. Return
  163. '
  164. ' Barre de couleurs
  165. > procedure Test_couleurs
  166.   Local A&
  167.   Cls
  168.   For A&=0 To 2^Dpeek(L~a)              ! Nombre de couleurs
  169.     Deffill A&
  170.     Pbox 0+A&*2,0,2+A&*2,100
  171.   Next A&
  172.   Print "Ecran logique: "+Hex$(Xbios(3),8)
  173.   Print "Couleurs= ";2^Dpeek(L~a)
  174.   Print "Xmax= ";Dpeek(L~a-&HC)
  175.   Print "Ymax= ";Dpeek(L~a-&H4)
  176. Return
  177. '
  178. '
  179.